package com.beiben.project.service;

import com.beiben.project.domain.BeiBenTreeSelect;
import com.beiben.project.domain.Project;
import com.beiben.system.file.domain.File;

import java.util.List;

/**
 * 项目管理Service接口
 *
 * @author 熊国强
 * @date 2020-12-03
 */
public interface IProjectService {
    /**
     * 查询项目管理
     *
     * @param projectId 项目管理ID
     * @return 项目管理
     */
    public Project selectProjectById(Long projectId);

    /**
     * 查询项目管理列表
     *
     * @param project 项目管理
     * @return 项目管理集合
     */
    public List<Project> selectProjectList(Project project);

    /**
     * 新增项目管理
     *
     * @param project 项目管理
     * @return 结果
     */
    public int insertProject(Project project);


    /**
     * 修改项目管理
     *
     * @param project 项目管理
     * @return 结果
     */
    public int updateProject(Project project);

    /**
     * 批量删除项目管理
     *
     * @param projectIds 需要删除的项目管理ID
     * @return 结果
     */
    public int deleteProjectByIds(Long[] projectIds);

    /**
     * 删除项目管理信息
     *
     * @param projectId 项目管理ID
     * @return 结果
     */
    public int deleteProjectById(Long projectId);

    /**
     * 查询项目管理下拉树
     *
     * @param relParentId 项目管理
     * @return 项目管理集合
     */
    public List<BeiBenTreeSelect> selectProjectTreeList(String relParentId);

    /**
     * 查询项目管理下拉树
     *
     * @param relParentId 项目管理
     * @return 项目管理集合
     */
    public List<Project> selectProjectParentTreeList(String relParentId, String isParent);


    /**
     * 文件列表
     *
     * @param projectId 项目管理ID
     */
    public List<File> selectFiles(Long projectId);


    /**
     * 项目经理直接完成项目节点
     *
     * @param projectIds 项目节点id
     * @param itemIds    项目工作id
     * @return
     */
    int approveComplete(Long[] projectIds, Long[] itemIds);
}